Two recipe fields flagged by the OpenAPI type-check (scripts/check_openapi_sync.py) whose C type doesn't match the wire format:
discord_reaction.burst_colors (channel.recipe.h): the API sends an array of hex color strings, modeled as a single char * — decoding a real payload can't work
discord_attachment.duration_secs (channel.recipe.h): the API sends float seconds (voice messages), modeled as int — fractional durations truncate
Fixes are one-line recipe changes (struct strings * and double respectively) but break the public structs, so they're parked for a breaking-change window. Both are allowlisted in scripts/openapi_sync_allowlist.txt under "real modeling gaps" — remove the type: entries together with the fix so CI enforces it.
Two recipe fields flagged by the OpenAPI type-check (
scripts/check_openapi_sync.py) whose C type doesn't match the wire format:discord_reaction.burst_colors(channel.recipe.h): the API sends an array of hex color strings, modeled as a singlechar *— decoding a real payload can't workdiscord_attachment.duration_secs(channel.recipe.h): the API sends float seconds (voice messages), modeled asint— fractional durations truncateFixes are one-line recipe changes (
struct strings *anddoublerespectively) but break the public structs, so they're parked for a breaking-change window. Both are allowlisted inscripts/openapi_sync_allowlist.txtunder "real modeling gaps" — remove thetype:entries together with the fix so CI enforces it.