type Query {
	presences(
		service: StringOrStringArray
		author: String
		contributor: String
		start: Int
		limit: Int
		query: String
		tag: String
	): [Presence!]!
}

type Presence {
	url: String!
	metadata: PresenceMetadata!
	presenceJs: String!
	iframeJs: String
	users: Int!
}

type PresenceMetadata {
	apiVersion: Int!
	author: PresenceMetadataUser!
	contributors: [PresenceMetadataUser!]
	altnames: [String!]
	service: String!
	description: Scalar! # serialize
	url: Scalar! # serialize
	version: String!
	logo: String!
	thumbnail: String!
	color: String!
	tags: [String!]!
	category: String!
	iframe: Boolean
	regExp: String
	iFrameRegExp: String
	readLogs: Boolean
	button: Boolean
	warning: Boolean
	settings: [PresenceMetadataSettings!]
}

type PresenceMetadataUser {
	id: String!
	name: String!
}

type PresenceMetadataSettings {
	id: String!
	title: String
	icon: String
	if: Scalar # serialize
	placeholder: String
	value: Scalar # serialize
	values: Scalar # serialize
	multiLanguage: Scalar # serialize
}
