Normalizes and encodes island props with validation errors tailored for Astral islands.
Props cross from server-rendered HTML into browser JavaScript, so they must be
JSON-shaped data or structs that explicitly define how they encode. Plain maps,
lists, strings, numbers, booleans, nil, and atoms are accepted. Structs are
accepted when they use JSONCodec or implement Jason.Encoder.
Summary
Functions
Returns a JSON string for island props or raises with a helpful error.
Returns JSON-shaped props or raises with a helpful error.
Types
@type path() :: [atom() | String.t() | non_neg_integer()]