0.10.0 introduces the visual layer model while keeping the existing
AvatarOptions rendering path stable.
AvatarAccessorywithnone,glasses,hat,headphones,crown,bowtie,eyepatch,scarf,halo, andhorns.AvatarColorwithdefault,neon-mint,pastel-pink,crimson,gold, anddeep-sea-blue.AvatarExpressionwithdefault,happy,grumpy,surprised,sleepy,winking,cool, andcrying.AvatarShapewithsquare,circle,squircle,hexagon, andoctagon.AvatarStyleOptionsfor explicit kind, background, accessory, color, expression, and frame-shape selection.- Style-aware raster, SVG, and encode APIs:
render_avatar_style_for_idrender_avatar_svg_style_for_idencode_avatar_style_for_id- namespace and identity-options variants for each
- Automatic style APIs:
render_avatar_auto_for_idrender_avatar_svg_auto_for_idencode_avatar_auto_for_id- namespace and identity-options variants for each
- Public digest-byte constants for automatic style derivation.
- Family-aware face anchors for accessory and expression placement.
- README option catalog covering all public enum values and the difference
between
AvatarOptionsandAvatarStyleOptions.
Existing AvatarOptions output is unchanged. Legacy options map to
accessory = none, color = default, expression = default, and
shape = square.
Automatic style rendering is opt-in. It derives kind, background, accessory,
color, expression, and shape from distinct identity digest bytes using each
enum's ALL list.
Accessories and expressions are deterministic no-ops for non-face avatar
families where the layer cannot be placed sensibly. For example, paws with an
eyepatch renders the baseline paws avatar rather than placing a patch at an
arbitrary canvas position.
- README security guidance now includes explicit caller-side zeroization and service-side render-concurrency examples for high-assurance deployments.
- Fuzz coverage now exercises the style-aware render and encode APIs.
- Golden fingerprints cover representative layered avatars and automatic style output.
- Tests enforce parser/display round trips, enum
ALLdrift protection, distinct automatic digest offsets, manual layer selection, and raster/SVG support for all baseline layer variants. - Tests enforce deterministic no-op behavior for unsupported family/layer combinations.