AeThex-OS/server/game-dev-apis.ts

888 lines
27 KiB
TypeScript

/**
* Comprehensive Game Dev & Metaverse API Integration
* Supports: Minecraft, Meta Horizon, Steam, Epic Online Services, PlayFab, AWS GameLift,
* Unity, Unreal, Twitch, YouTube, Firebase, Anthropic Claude, AWS S3, Segment, Apple/Google services
*/
// ============================================================================
// GAME PLATFORMS
// ============================================================================
/** Minecraft API Integration */
export class MinecraftAPI {
private clientId = process.env.MINECRAFT_CLIENT_ID;
private clientSecret = process.env.MINECRAFT_CLIENT_SECRET;
private baseUrl = "https://api.minecraftservices.com";
async getPlayerProfile(accessToken: string) {
const res = await fetch(`${this.baseUrl}/minecraft/profile`, {
headers: { Authorization: `Bearer ${accessToken}` }
});
return res.json();
}
async verifySecurityLocation(accessToken: string, ipAddress: string) {
const res = await fetch(`${this.baseUrl}/user/security/location/verify`, {
method: "POST",
headers: { Authorization: `Bearer ${accessToken}` },
body: JSON.stringify({ ipAddress })
});
return res.json();
}
async getPlayerSkins(uuid: string) {
const res = await fetch(`${this.baseUrl}/minecraft/profile/${uuid}/appearance`);
return res.json();
}
async getFriendsList(accessToken: string) {
const res = await fetch(`${this.baseUrl}/player/friends`, {
headers: { Authorization: `Bearer ${accessToken}` }
});
return res.json();
}
}
/** Meta Horizon Worlds API */
export class MetaHorizonAPI {
private appId = process.env.META_APP_ID;
private appSecret = process.env.META_APP_SECRET;
private baseUrl = "https://graph.instagram.com";
async getWorldInfo(worldId: string, accessToken: string) {
const res = await fetch(`${this.baseUrl}/${worldId}`, {
headers: { Authorization: `Bearer ${accessToken}` }
});
return res.json();
}
async getUserProfile(userId: string, accessToken: string) {
const res = await fetch(`${this.baseUrl}/${userId}?fields=id,name,picture,username`, {
headers: { Authorization: `Bearer ${accessToken}` }
});
return res.json();
}
async getAvatarAssets(userId: string, accessToken: string) {
const res = await fetch(`${this.baseUrl}/${userId}/avatar_assets`, {
headers: { Authorization: `Bearer ${accessToken}` }
});
return res.json();
}
async createWorldEvent(worldId: string, eventData: any, accessToken: string) {
const res = await fetch(`${this.baseUrl}/${worldId}/events`, {
method: "POST",
headers: {
Authorization: `Bearer ${accessToken}`,
"Content-Type": "application/json"
},
body: JSON.stringify(eventData)
});
return res.json();
}
}
/** Steam API Integration */
export class SteamAPI {
private apiKey = process.env.STEAM_API_KEY;
private baseUrl = "https://api.steampowered.com";
async getPlayerSummaries(steamIds: string[]) {
const params = new URLSearchParams({
key: this.apiKey!,
steamids: steamIds.join(","),
format: "json"
});
const res = await fetch(`${this.baseUrl}/ISteamUser/GetPlayerSummaries/v2?${params}`);
return res.json();
}
async getGameAchievements(appId: string, steamId: string) {
const params = new URLSearchParams({
key: this.apiKey!,
steamid: steamId,
appid: appId,
format: "json"
});
const res = await fetch(`${this.baseUrl}/ISteamUserStats/GetPlayerAchievements/v1?${params}`);
return res.json();
}
async getGameStats(appId: string, steamId: string) {
const params = new URLSearchParams({
key: this.apiKey!,
steamid: steamId,
appid: appId,
format: "json"
});
const res = await fetch(`${this.baseUrl}/ISteamUserStats/GetUserStatsForGame/v2?${params}`);
return res.json();
}
async getOwnedGames(steamId: string) {
const params = new URLSearchParams({
key: this.apiKey!,
steamid: steamId,
format: "json",
include_appinfo: "true"
});
const res = await fetch(`${this.baseUrl}/IPlayerService/GetOwnedGames/v1?${params}`);
return res.json();
}
async publishGameScore(appId: string, leaderboardId: number, score: number, steamId: string) {
const params = new URLSearchParams({
key: this.apiKey!,
appid: appId,
leaderboardid: leaderboardId.toString(),
score: score.toString(),
steamid: steamId,
force: "1"
});
const res = await fetch(`${this.baseUrl}/ISteamLeaderboards/SetLeaderboardScore/v1?${params}`, {
method: "POST"
});
return res.json();
}
}
// ============================================================================
// GAME BACKEND SERVICES
// ============================================================================
/** Epic Online Services (EOS) - Multiplayer, Matchmaking, Lobbies */
export class EpicOnlineServices {
private deploymentId = process.env.EOS_DEPLOYMENT_ID;
private clientId = process.env.EOS_CLIENT_ID;
private clientSecret = process.env.EOS_CLIENT_SECRET;
private baseUrl = "https://api.epicgames.com";
async createLobby(lobbyDetails: {
maxMembers: number;
isPublic: boolean;
permissionLevel: string;
}) {
const res = await fetch(`${this.baseUrl}/lobbies/v1/lobbies`, {
method: "POST",
headers: {
"Authorization": `Bearer ${await this.getAccessToken()}`,
"Content-Type": "application/json",
"EOS-Deployment-Id": this.deploymentId!
},
body: JSON.stringify(lobbyDetails)
});
return res.json();
}
async joinLobby(lobbyId: string, playerId: string) {
const res = await fetch(`${this.baseUrl}/lobbies/v1/lobbies/${lobbyId}/members`, {
method: "POST",
headers: {
"Authorization": `Bearer ${await this.getAccessToken()}`,
"EOS-Deployment-Id": this.deploymentId!
},
body: JSON.stringify({ accountId: playerId })
});
return res.json();
}
async startMatchmaking(queueName: string, playerIds: string[]) {
const res = await fetch(`${this.baseUrl}/matchmaking/v1/sessions`, {
method: "POST",
headers: {
"Authorization": `Bearer ${await this.getAccessToken()}`,
"Content-Type": "application/json",
"EOS-Deployment-Id": this.deploymentId!
},
body: JSON.stringify({
queueName,
playerIds,
attributes: {}
})
});
return res.json();
}
private async getAccessToken() {
const res = await fetch("https://api.epicgames.com/auth/v1/oauth/token", {
method: "POST",
headers: { "Content-Type": "application/x-www-form-urlencoded" },
body: `grant_type=client_credentials&client_id=${this.clientId}&client_secret=${this.clientSecret}`
});
const data = await res.json();
return data.access_token;
}
}
/** PlayFab - Player Data, Analytics, Backend Logic */
export class PlayFabAPI {
private titleId = process.env.PLAYFAB_TITLE_ID;
private developerSecretKey = process.env.PLAYFAB_DEV_SECRET_KEY;
private baseUrl = "https://aethex.playfabapi.com";
async getPlayerProfile(playerId: string) {
const res = await fetch(`${this.baseUrl}/Client/GetPlayerProfile`, {
method: "POST",
headers: {
"X-PlayFabSDK": "typescript-sdk/1.0.0",
"Content-Type": "application/json"
},
body: JSON.stringify({
PlayFabId: playerId,
ProfileConstraints: {
ShowLocations: true,
ShowAvatarUrl: true,
ShowBannedUntil: true
}
})
});
return res.json();
}
async updatePlayerStatistics(playerId: string, stats: Record<string, number>) {
const res = await fetch(`${this.baseUrl}/Client/UpdatePlayerStatistics`, {
method: "POST",
headers: {
"X-PlayFabSDK": "typescript-sdk/1.0.0",
"Content-Type": "application/json"
},
body: JSON.stringify({
PlayFabId: playerId,
Statistics: Object.entries(stats).map(([name, value]) => ({ StatisticName: name, Value: value }))
})
});
return res.json();
}
async grantInventoryItems(playerId: string, itemIds: string[]) {
const res = await fetch(`${this.baseUrl}/Server/GrantItemsToUser`, {
method: "POST",
headers: {
"X-SecretKey": this.developerSecretKey,
"Content-Type": "application/json"
},
body: JSON.stringify({
PlayFabId: playerId,
ItemIds: itemIds,
Annotation: "AeThex Platform Grant"
})
});
return res.json();
}
async executeCloudScript(playerId: string, functionName: string, params: any) {
const res = await fetch(`${this.baseUrl}/Client/ExecuteCloudScript`, {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
PlayFabId: playerId,
FunctionName: functionName,
FunctionParameter: params
})
});
return res.json();
}
}
/** AWS GameLift - Game Server Hosting & Scaling */
export class AWSGameLift {
private fleetId = process.env.AWS_GAMELIFT_FLEET_ID;
private queueName = process.env.AWS_GAMELIFT_QUEUE_NAME;
private region = process.env.AWS_REGION || "us-east-1";
private baseUrl = `https://gamelift.${this.region}.amazonaws.com`;
async requestGameSession(playerId: string, gameSessionProperties?: Record<string, string>) {
const res = await fetch(`${this.baseUrl}/`, {
method: "POST",
headers: {
"Content-Type": "application/x-amz-json-1.1",
"X-Amz-Target": "GameLift.StartMatchmaking"
},
body: JSON.stringify({
TicketId: `ticket-${playerId}-${Date.now()}`,
ConfigurationName: this.queueName,
Players: [{ PlayerId: playerId }],
GameSessionProperties: gameSessionProperties || {}
})
});
return res.json();
}
async getGameSessionDetails(gameSessionId: string) {
const res = await fetch(`${this.baseUrl}/`, {
method: "POST",
headers: {
"Content-Type": "application/x-amz-json-1.1",
"X-Amz-Target": "GameLift.DescribeGameSessions"
},
body: JSON.stringify({
GameSessionId: gameSessionId,
FleetId: this.fleetId
})
});
return res.json();
}
async scaleFleet(desiredInstances: number) {
const res = await fetch(`${this.baseUrl}/`, {
method: "POST",
headers: {
"Content-Type": "application/x-amz-json-1.1",
"X-Amz-Target": "GameLift.UpdateFleetCapacity"
},
body: JSON.stringify({
FleetId: this.fleetId,
DesiredEC2Instances: desiredInstances
})
});
return res.json();
}
}
// ============================================================================
// ENGINE INTEGRATIONS
// ============================================================================
/** Unity Cloud Integration */
export class UnityCloud {
private projectId = process.env.UNITY_PROJECT_ID;
private apiKey = process.env.UNITY_API_KEY;
private baseUrl = "https://api.unity.com/v2";
async buildGame(buildConfig: {
platform: "windows" | "mac" | "linux" | "ios" | "android";
buildName: string;
sceneList: string[];
}) {
const res = await fetch(`${this.baseUrl}/projects/${this.projectId}/builds`, {
method: "POST",
headers: {
"Authorization": `Basic ${Buffer.from(`:${this.apiKey}`).toString("base64")}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
buildTargetId: buildConfig.platform,
name: buildConfig.buildName,
sceneList: buildConfig.sceneList,
autoRun: false
})
});
return res.json();
}
async getBuildStatus(buildId: string) {
const res = await fetch(`${this.baseUrl}/projects/${this.projectId}/builds/${buildId}`, {
headers: {
"Authorization": `Basic ${Buffer.from(`:${this.apiKey}`).toString("base64")}`
}
});
return res.json();
}
async downloadBuildArtifacts(buildId: string) {
const res = await fetch(
`${this.baseUrl}/projects/${this.projectId}/builds/${buildId}/artifacts`,
{
headers: {
"Authorization": `Basic ${Buffer.from(`:${this.apiKey}`).toString("base64")}`
}
}
);
return res.json();
}
}
/** Unreal Engine Integration (Pixel Streaming, Pixel Cloud) */
export class UnrealEngine {
private projectId = process.env.UNREAL_PROJECT_ID;
private apiKey = process.env.UNREAL_API_KEY;
private baseUrl = "https://api.unrealengine.com";
async getPixelStreamingStatus(sessionId: string) {
const res = await fetch(`${this.baseUrl}/sessions/${sessionId}`, {
headers: { "Authorization": `Bearer ${this.apiKey}` }
});
return res.json();
}
async sendPixelStreamingInput(sessionId: string, inputData: any) {
const res = await fetch(`${this.baseUrl}/sessions/${sessionId}/input`, {
method: "POST",
headers: {
"Authorization": `Bearer ${this.apiKey}`,
"Content-Type": "application/json"
},
body: JSON.stringify(inputData)
});
return res.json();
}
async startPixelStreamInstance(appId: string) {
const res = await fetch(`${this.baseUrl}/instances`, {
method: "POST",
headers: {
"Authorization": `Bearer ${this.apiKey}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
applicationId: appId,
region: "us-east-1"
})
});
return res.json();
}
}
// ============================================================================
// STREAMING & CONTENT
// ============================================================================
/** Twitch Integration - Streaming, Chat, Extensions */
export class TwitchAPI {
private clientId = process.env.TWITCH_CLIENT_ID;
private clientSecret = process.env.TWITCH_CLIENT_SECRET;
private baseUrl = "https://api.twitch.tv/helix";
async getStream(broadcasterId: string) {
const res = await fetch(`${this.baseUrl}/streams?user_id=${broadcasterId}`, {
headers: {
"Client-ID": this.clientId!,
"Authorization": `Bearer ${await this.getAccessToken()}`
}
});
return res.json();
}
async updateStream(broadcasterId: string, title: string, gameId: string) {
const res = await fetch(`${this.baseUrl}/channels?broadcaster_id=${broadcasterId}`, {
method: "PATCH",
headers: {
"Client-ID": this.clientId!,
"Authorization": `Bearer ${await this.getAccessToken()}`,
"Content-Type": "application/json"
},
body: JSON.stringify({ title, game_id: gameId })
});
return res.json();
}
async createClip(broadcasterId: string) {
const res = await fetch(`${this.baseUrl}/clips?broadcaster_id=${broadcasterId}`, {
method: "POST",
headers: {
"Client-ID": this.clientId!,
"Authorization": `Bearer ${await this.getAccessToken()}`
}
});
return res.json();
}
async getFollowers(broadcasterId: string) {
const res = await fetch(`${this.baseUrl}/channels/followers?broadcaster_id=${broadcasterId}`, {
headers: {
"Client-ID": this.clientId!,
"Authorization": `Bearer ${await this.getAccessToken()}`
}
});
return res.json();
}
private async getAccessToken() {
const res = await fetch("https://id.twitch.tv/oauth2/token", {
method: "POST",
body: new URLSearchParams({
client_id: this.clientId!,
client_secret: this.clientSecret!,
grant_type: "client_credentials"
})
});
const data = await res.json();
return data.access_token;
}
}
/** YouTube Gaming Integration */
export class YouTubeGaming {
private apiKey = process.env.YOUTUBE_API_KEY;
private clientId = process.env.YOUTUBE_CLIENT_ID;
private clientSecret = process.env.YOUTUBE_CLIENT_SECRET;
private baseUrl = "https://www.googleapis.com/youtube/v3";
async searchGames(query: string) {
const res = await fetch(
`${this.baseUrl}/search?q=${encodeURIComponent(query)}&type=video&videoCategoryId=20&key=${this.apiKey}`
);
return res.json();
}
async uploadGameplay(videoFile: File, title: string, accessToken: string) {
const formData = new FormData();
formData.append("file", videoFile);
formData.append("metadata", JSON.stringify({
snippet: {
title,
categoryId: "20",
tags: ["gaming", "aethex"]
}
}));
const res = await fetch(`${this.baseUrl}/videos?uploadType=multipart&part=snippet`, {
method: "POST",
headers: { "Authorization": `Bearer ${accessToken}` },
body: formData
});
return res.json();
}
async getChannelStats(accessToken: string) {
const res = await fetch(
`${this.baseUrl}/channels?part=statistics&mine=true`,
{
headers: { "Authorization": `Bearer ${accessToken}` }
}
);
return res.json();
}
}
// ============================================================================
// AI & ANALYTICS
// ============================================================================
/** Anthropic Claude API - Advanced AI */
export class ClaudeAI {
private apiKey = process.env.ANTHROPIC_API_KEY;
private baseUrl = "https://api.anthropic.com/v1";
async chat(messages: Array<{ role: string; content: string }>) {
const res = await fetch(`${this.baseUrl}/messages`, {
method: "POST",
headers: {
"x-api-key": this.apiKey!,
"anthropic-version": "2023-06-01",
"Content-Type": "application/json"
},
body: JSON.stringify({
model: "claude-3-opus-20240229",
max_tokens: 2048,
messages
})
});
return res.json();
}
async analyzeGameplay(gameplayDescription: string) {
const res = await this.chat([
{
role: "user",
content: `Analyze this gameplay session and provide insights:\n${gameplayDescription}`
}
]);
return res;
}
}
/** Firebase - Analytics, Crashlytics, Real-time DB */
export class FirebaseIntegration {
private projectId = process.env.FIREBASE_PROJECT_ID;
private serviceAccountKey = JSON.parse(process.env.FIREBASE_SERVICE_ACCOUNT_KEY || "{}");
async trackEvent(userId: string, eventName: string, eventParams: Record<string, any>) {
// Firebase Measurement Protocol via HTTP
const res = await fetch(
`https://www.google-analytics.com/mp/collect?measurement_id=${process.env.FIREBASE_MEASUREMENT_ID}&api_secret=${process.env.FIREBASE_API_SECRET}`,
{
method: "POST",
body: JSON.stringify({
client_id: userId,
events: [
{
name: eventName,
params: eventParams
}
]
})
}
);
return res.json();
}
async logCrash(userId: string, errorMessage: string, stackTrace: string) {
return this.trackEvent(userId, "app_exception", {
error_message: errorMessage,
stack_trace: stackTrace
});
}
}
/** Segment.io - Analytics Data Pipeline */
export class SegmentAnalytics {
private writeKey = process.env.SEGMENT_WRITE_KEY;
private baseUrl = "https://api.segment.io";
async track(userId: string, event: string, properties: Record<string, any>) {
const res = await fetch(`${this.baseUrl}/v1/track`, {
method: "POST",
headers: {
"Authorization": `Basic ${Buffer.from(`${this.writeKey}:`).toString("base64")}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
userId,
event,
properties,
timestamp: new Date().toISOString()
})
});
return res.json();
}
async identify(userId: string, traits: Record<string, any>) {
const res = await fetch(`${this.baseUrl}/v1/identify`, {
method: "POST",
headers: {
"Authorization": `Basic ${Buffer.from(`${this.writeKey}:`).toString("base64")}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
userId,
traits,
timestamp: new Date().toISOString()
})
});
return res.json();
}
}
// ============================================================================
// STORAGE & CDN
// ============================================================================
/** AWS S3 - Game Assets, Media Storage */
export class AWSS3Storage {
private bucketName = process.env.AWS_S3_BUCKET;
private region = process.env.AWS_REGION || "us-east-1";
private baseUrl = `https://${this.bucketName}.s3.${this.region}.amazonaws.com`;
async uploadGameAsset(key: string, file: Buffer, contentType: string) {
const res = await fetch(`${this.baseUrl}/${key}`, {
method: "PUT",
headers: { "Content-Type": contentType },
body: file
});
return res.ok;
}
async getAssetUrl(key: string, expiresIn = 3600) {
// In production, use AWS SDK for signed URLs
return `${this.baseUrl}/${key}`;
}
async listGameAssets(prefix: string) {
// Would use AWS SDK
return [];
}
}
/** 3D Asset Services Integration */
export class AssetServices {
private sketchfabApiKey = process.env.SKETCHFAB_API_KEY;
private polyhavenApiKey = process.env.POLYHAVEN_API_KEY;
async searchSketchfab(query: string, fileType = "glb") {
const res = await fetch(
`https://api.sketchfab.com/v3/search?type=models&q=${encodeURIComponent(query)}&file_type=${fileType}`,
{
headers: { "Authorization": `Token ${this.sketchfabApiKey}` }
}
);
return res.json();
}
async searchPolyHaven(assetType: "models" | "textures" | "hdri", query: string) {
const res = await fetch(
`https://api.polyhaven.com/files?asset_type=${assetType}&search=${encodeURIComponent(query)}`
);
return res.json();
}
async getTurboSquidAssets(query: string) {
// TurboSquid API integration
const res = await fetch(`https://api.turbosquid.com/search?q=${encodeURIComponent(query)}`);
return res.json();
}
}
// ============================================================================
// PAYMENT INTEGRATIONS
// ============================================================================
/** PayPal Integration */
export class PayPalIntegration {
private clientId = process.env.PAYPAL_CLIENT_ID;
private clientSecret = process.env.PAYPAL_CLIENT_SECRET;
private baseUrl = process.env.PAYPAL_SANDBOX ?
"https://api.sandbox.paypal.com" :
"https://api.paypal.com";
async createOrder(items: Array<{ name: string; quantity: number; price: string }>) {
const res = await fetch(`${this.baseUrl}/v2/checkout/orders`, {
method: "POST",
headers: {
"Authorization": `Basic ${Buffer.from(`${this.clientId}:${this.clientSecret}`).toString("base64")}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
intent: "CAPTURE",
purchase_units: [
{
items,
amount: {
currency_code: "USD",
value: items.reduce((sum, item) => sum + (parseFloat(item.price) * item.quantity), 0).toString()
}
}
]
})
});
return res.json();
}
async capturePayment(orderId: string) {
const res = await fetch(`${this.baseUrl}/v2/checkout/orders/${orderId}/capture`, {
method: "POST",
headers: {
"Authorization": `Basic ${Buffer.from(`${this.clientId}:${this.clientSecret}`).toString("base64")}`
}
});
return res.json();
}
}
/** Google Play Billing - Android In-App Purchases */
export class GooglePlayBilling {
private packageName = process.env.GOOGLE_PLAY_PACKAGE_NAME;
private serviceAccountKey = JSON.parse(process.env.GOOGLE_PLAY_SERVICE_ACCOUNT || "{}");
async validatePurchaseToken(productId: string, token: string) {
const res = await fetch(
`https://androidpublisher.googleapis.com/androidpublisher/v3/applications/${this.packageName}/purchases/products/${productId}/tokens/${token}`,
{
headers: {
"Authorization": `Bearer ${await this.getAccessToken()}`
}
}
);
return res.json();
}
private async getAccessToken() {
// Would use JWT for service account
return "access_token";
}
}
/** Apple App Store Server API */
export class AppleAppStoreAPI {
private bundleId = process.env.APPLE_BUNDLE_ID;
private issuerId = process.env.APPLE_ISSUER_ID;
private keyId = process.env.APPLE_KEY_ID;
private privateKey = process.env.APPLE_PRIVATE_KEY;
private baseUrl = "https://api.storekit.itunes.apple.com";
async validateReceipt(transactionId: string) {
const res = await fetch(`${this.baseUrl}/inApps/v1/transactions/${transactionId}`, {
headers: {
"Authorization": `Bearer ${await this.getJWT()}`
}
});
return res.json();
}
async getTransactionHistory(originalTransactionId: string) {
const res = await fetch(
`${this.baseUrl}/inApps/v1/history/${originalTransactionId}`,
{
headers: {
"Authorization": `Bearer ${await this.getJWT()}`
}
}
);
return res.json();
}
private async getJWT() {
// Would generate JWT using private key
return "jwt_token";
}
}
// ============================================================================
// PLATFORM SPECIFIC
// ============================================================================
/** Google Play Services - Gaming, Leaderboards, Achievements */
export class GooglePlayServices {
private clientId = process.env.GOOGLE_PLAY_CLIENT_ID;
private clientSecret = process.env.GOOGLE_PLAY_CLIENT_SECRET;
private baseUrl = "https://www.googleapis.com/games/v1";
async getLeaderboard(leaderboardId: string, accessToken: string) {
const res = await fetch(`${this.baseUrl}/leaderboards/${leaderboardId}`, {
headers: { "Authorization": `Bearer ${accessToken}` }
});
return res.json();
}
async submitScore(leaderboardId: string, score: number, accessToken: string) {
const res = await fetch(
`${this.baseUrl}/leaderboards/${leaderboardId}/scores`,
{
method: "POST",
headers: {
"Authorization": `Bearer ${accessToken}`,
"Content-Type": "application/json"
},
body: JSON.stringify({ score })
}
);
return res.json();
}
async unlockAchievement(achievementId: string, accessToken: string) {
const res = await fetch(`${this.baseUrl}/achievements/${achievementId}/unlock`, {
method: "POST",
headers: { "Authorization": `Bearer ${accessToken}` }
});
return res.json();
}
}
// ============================================================================
// REGISTRY & INITIALIZATION
// ============================================================================
export const GameDevAPIs = {
minecraft: new MinecraftAPI(),
metaHorizon: new MetaHorizonAPI(),
steam: new SteamAPI(),
eos: new EpicOnlineServices(),
playFab: new PlayFabAPI(),
gameLift: new AWSGameLift(),
unity: new UnityCloud(),
unreal: new UnrealEngine(),
twitch: new TwitchAPI(),
youtube: new YouTubeGaming(),
claude: new ClaudeAI(),
firebase: new FirebaseIntegration(),
segment: new SegmentAnalytics(),
s3: new AWSS3Storage(),
assets: new AssetServices(),
paypal: new PayPalIntegration(),
googlePlay: new GooglePlayBilling(),
appStore: new AppleAppStoreAPI(),
googlePlayServices: new GooglePlayServices()
};
export type GameDevAPIsType = typeof GameDevAPIs;