public static function create(RequestInterface $request):Response {
		$negotiator = new Negotiator();
		$acceptHeader = $request->getHeaderLine("accept")
			?: self::DEFAULT_ACCEPT;
		$priorities = [
			"text/html; charset=UTF-8",
			"application/json",
			"application/xml;q=0.5",
		];

		static::$mediaType = $negotiator->getBest(
			$acceptHeader,
			$priorities
		);

		if(static::$mediaType) {
			$accept = static::$mediaType->getType();
		}
		else {
			$accept = $acceptHeader;
		}

		if(!isset(static::$responseClassLookup[$accept])) {
			throw new UnknownAcceptHeaderException($accept);
		}
		return new static::$responseClassLookup[$accept];
	}