Yay, using statements! And fixing the csproj after the merge. Will need to talk to Cat-san about how to deal with configs and other stuff for the server, since it seems like he wants the server to be configured externally (or constructed from something special? I can't exactly tell).

><> <><
She smirked. "In a sense."

He sighed. "You're going to make me guess about some detail."

"Basically, yeah."

"You just lo-ove doing this to me..."

"More than you know."
Reorganised project, added command-line/config parsing and file logging.

We'll go with the split projects when they're actually useful. For now
this is easier to manage.
Preparing for merge and sync. Also, scalable, well-written socket programming is ultrahardmode.

><> <><
"Alight, so I'm going to say you at least found him, then?"

"Yes. But."

He rubbed his face. It was a 'but' he knew all too well; now, began the fill-in-the-blanks game. "But he's too hard to keep track of?"

"Nope," she was grinning, and she hiked herself over the top of the couch and landed next to him. "In fact, you could say it's impossible to lose track of him anymore."

"So he's immobile?"

"Yes, but it's more than that."
Merge remote-tracking branch 'main/develop' into feature/server

Conflicts:
	LoungeChat.Server.Runner/ServerRunner.cs
	LoungeChat.Server/Components/Server.cs
	LoungeChat.Server/LoungeChat.Server.csproj
Added NHibernate to the project.

I'm not bothering with repositories or other abstractions on top of
NHibernate for now. We'll look into that iif using NHibernate directly
proves cumbersome.

If you're adding a new persisted model, remember that FluentNHibernate
is configured to skip any model that's not marked with [Persistent]
attribute.
Preparing for merge and sync. We can recieve messages on the server now. Still working on the Send bit. Websocket part of it all hasn't been implemented yet; I'm just getting a good, fast, asynchronous socket server going in the best way I know how (read: I have no idea what I'm doing and I'm flopping about like a magikarp).

><> <><
He rubbed his temples. Christ, she loved to mess with him. Still, not to be bested, he put on a smirk of his own and did what he did best: being outrageous. "Oh, so he must have fought a bear and got maimed and the bear left him for dead, and while that happened a hunter who accidentally fired at an arc to the sky much earlier, that bullet finally came down and struck him in the arm and you only just discovered his dead body!"

"Now you've overshot, silly," she said with a giggle.

"So then wha-" She cut him off as she plopped down on the couch.

"'What is he', you were going to ask?" She stretched, then gave him a smile as she looked him right in the eyes. "He's dead."
Merge remote-tracking branch 'main/develop' into feature/server

Conflicts:
	LoungeChat.Server/LoungeChat.Server.csproj
><> <><
His eyebrows couldn't have raised any higher than they were. "Jesus christ, you look like you're trying to stare into my soul or something!" She gave a chuckle, shaking her head. "Yes, you heard me. Dead."

His eyebrows came back down, and his eyes narrowed substantially, peering at her carefully. "Did you see the body?"

"What?"

"Did you see his dead body. In a coffin, on the ground, in a morgue, I don't care where -- did you physically lay your eyes on and identify that it was his dead body?" He said carefully, eyeing her closely.

She paused, smirking a bit as she didn't say anything. He continued to peer at her, the rise and fall of his temple clearly showing his growing lack of patience -- an impatience that she lavished in, enjoying torturing him with this information.

"Damnit Tia, yes or no?!" He hissed out, clearly losing the battle of patience by a long shot.
Forget an exclamation mark! Now I just need to test this with @CatPlusPlus or @rightfold. Then, the next feature branch will be async / await, and then we'll implement websockets on top of it (once we get a more stable async send / receive, anyways: it seems like TcpClient doesn't post both a send and a receive at the same time, and the two can block each other. That's just silly).
Preparing AcceptToken and SendReceiveToken for async/await operations. Next on the list is extending TCPSocketServer to make a WebSocketServer, that produces WebSocket clients. After that, we will build authentication on top of the WebSocketServer, so:

LoungeChatServer : WebSocketServer : TCPSocketServer.

We'll be able to layer on protocol after protocol, and the nice thing is we can also wrap things like TCPSocketClient up in WebSocketClient, and then wrap WebSocketClient up in LoungeChatClient (LoungeChat authentication tokens and information, gravatars, userid, etc. etc.).

><> <><
"Yes." Tia finally said, having procured a pleasantly satisfying amount of his impatience to make him swear. "I saw the body, I saw the scars. It was fresh, and his hair was actually still the same as it was a decade ago. Except, maybe more bald."

He gave a sigh, tension leaving him as he fell back into the couch. "So it's all done, then? We can finally relax?"