[write] Create a DRAFT post (not live, never auto-published) on one social account (`account_id` or `account_uuid`); the result carries the post's id and uuid. platform = ig|fb|tw|tt|yt|li|th|tg|bsky.
caption fills the platform's text field (ig_post_caption, fb_post_message, tw_post_text, tt_post_title, yt_post_description, li_post_text, th_post_text).
fields = the rest of the /api/<p>/posts/create body with prefixed keys, e.g. ig: {ig_post_type: SINGLE|CAROUSEL|REELS, ig_post_items: [{type: IMAGE|VIDEO, url}]};
fb: {fb_post_type, fb_post_items, fb_post_link}; tw: {tw_post_type: TEXT|IMAGE|VIDEO|POLL, tw_post_items}; tt: {tt_post_type: VIDEO|PHOTO, tt_post_items, tt_post_privacy_level};
yt: {yt_post_title, yt_post_privacy_status, yt_post_made_for_kids, yt_post_video_url}; li: {li_post_type: TEXT|IMAGE|VIDEO|ARTICLE, li_post_items, li_post_article_url};
th (Threads, caption up to 500 chars): {th_post_type: TEXT|IMAGE|VIDEO|CAROUSEL, th_post_items: [{type: IMAGE|VIDEO, url, alt_text?}] (one for IMAGE/VIDEO, 2-20 for CAROUSEL), th_post_reply_control: everyone|accounts_you_follow|mentioned_only, th_post_topic_tag, th_post_link_attachment (TEXT only)};
bsky (Bluesky, caption up to 300 chars, published at once unless scheduled with schedule_social_post): {bsky_post_type: TEXT|IMAGE, bsky_post_items: [{url, alt?}] (1-4 images for IMAGE), bsky_post_langs: ["tr"]};
tg (a Telegram user account posting to its own channels/groups): {tg_post_type: TEXT|PHOTO|VIDEO|ALBUM, tg_post_items, tg_post_target_ids: [tg_target_id, 1-10 ACTIVE targets that can_post]} - caption is the text (4096 for TEXT, 1024 under media).
Media items are public urls. Schedule fields are ignored here - use schedule_social_post after approval.