Statically parse top-level identifier, field, and fields declarations. Map each to type: string by default. Handle the name: option for key renaming. Fields defined with a block should also produce a string entry.
identifier :uuid
field :email, name: :login # -> "login": string
fields :first_name, :last_name
field(:full_name) { |u| ... } # -> "full_name": string
Statically parse top-level
identifier,field, andfieldsdeclarations. Map each totype: stringby default. Handle thename:option for key renaming. Fields defined with a block should also produce a string entry.