--- name: projection-spec description: Manage named field selection specifications that control which columns appear in a view , in what order , and how they are formatted or computed . Each projection captures a JSON serialized ProjectionField [ ] describing key , optional label , visibility , formatter , computed expression , and weight . Projections can be merged so that overlay fields win on key conflict and new fields are appended , and can be evaluated directly against a JSON row array to produce projected rows containing only the specified fields in the specified order argument-hint: [command] [name] [fields] allowed-tools: Read, Grep, Glob, Bash --- # ProjectionSpec Manage named field selection specifications that control which columns appear in a view , in what order , and how they are formatted or computed . Each projection captures a JSON serialized ProjectionField [ ] describing key , optional label , visibility , formatter , computed expression , and weight . Projections can be merged so that overlay fields win on key conflict and new fields are appended , and can be evaluated directly against a JSON row array to produce projected rows containing only the specified fields in the specified order ## Commands ### create Register a new named projection spec with the given field array . The fields string is a JSON serialized ProjectionField [ ] where each entry may carry key , label , visible , formatter , computed , and weight properties . An empty array [ ] is valid and represents a zero field projection . **Arguments:** `$0` **name** (string), `$1` **fields** (string) ### get Return the projection spec identifier and its serialized field array for the given name . **Arguments:** `$0` **name** (string) ### merge Combine two projection specs : overlay fields win on key conflict ( matching by the key property ) , and fields present only in the overlay are appended after the base fields . The resulting projection is stored under the name base+overlay and its field array is returned . **Arguments:** `$0` **base** (string), `$1` **overlay** (string) ### evaluate Apply the named projection spec to a JSON serialized row array . Each row is reduced to only the fields declared in the projection , in the order they appear in the spec . Fields marked visible : false are excluded . The result is a JSON serialized array of projected row objects . **Arguments:** `$0` **name** (string), `$1` **rows** (string) ### list Return a JSON serialized array of all registered projection spec names .