Workstream: Type system · Part of #89
Context
CEL has a typed map<K,V>. SchemaForge has Composite (fixed-key struct, BTreeMap<String, DynamicValue> over a declared field set) and Json (untyped) — but no typed, open-keyed, homogeneous map. CEL map comprehensions (m.all(k,v,…), m.exists(...)) are only useful with a real map type.
Scope
- New
FieldType::Map { key, value } + matching DynamicValue.
- DSL syntax; distinguish clearly from
Composite and Json in docs.
Acceptance
- A typed map field round-trips; rule comprehensions over it type-check.
Dependencies: Type is parallelizable now; map comprehensions are exercised once the evaluator (#91) lands. Soft.
Workstream: Type system · Part of #89
Context
CEL has a typed
map<K,V>. SchemaForge hasComposite(fixed-key struct,BTreeMap<String, DynamicValue>over a declared field set) andJson(untyped) — but no typed, open-keyed, homogeneous map. CEL map comprehensions (m.all(k,v,…),m.exists(...)) are only useful with a real map type.Scope
FieldType::Map { key, value }+ matchingDynamicValue.CompositeandJsonin docs.Acceptance
Dependencies: Type is parallelizable now; map comprehensions are exercised once the evaluator (#91) lands. Soft.