<?php

namespace WeDevs\AppBridge\Core\Notifications\Contracts;

interface OneSignalMessage {

	/**
	 * Build the OneSignal payload consumed by {@see OneSignalDriver}.
	 *
	 * Recognised keys (all optional except title/message):
	 *   title, message
	 *   icon                                          → mapped to large_icon
	 *   action_type, action_type_id                   → merged into data (legacy routing)
	 *   data                                          → arbitrary extra values merged into data
	 *   included_segments, excluded_segments,         → audience targeting
	 *   include_player_ids, include_external_user_ids,
	 *   include_aliases, filters
	 *
	 * @return array<string, mixed>
	 */
	public function to_onesignal(): array;
}
