Describes the depth strategy when modifying types
Describes the merging strategy
0: lodash style. Preserves lists, and completes when undefined types
1: ramda style. Destroys lists, does not complete if undefined types
2: lodash style. Lists are narrowed down, tuples are not preserved
3: ramda style. Assumes that we are only working with lists
Describes the permissions/modifiers fields can have
R: readonly
W: writable
!: required
?: optional
Make an object properties (all)
never. We use this to intersectobjects and preserve the combine modifiers like+readonlyand?optional.