Write options types manually
Context
expand(), frame(), and the rest of functions specified by JSON-LD API take options argument, described by JsonLdOptions interface in the specification.
Some options are only valid for select functions, for instance, frameExpansion is only valid for frame().
Decision
- In Python types, use a separate type for each function's
optionsargument - Write these types manually instead of generating them from IDL.
Consequences
- Improved typing hints in application code;
- Invalid states made unrepresentable;
- Enhanced development experience.